<?php
namespace app\index\controller;
use think\Controller;


class Index extends Controller
{
    public function index() 
    {
        return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:) </h1><p> ThinkPHP V5.1<br/><span style="font-size:30px">欢迎使用-呼风网络验证系统</span></p></br><a href="https://www.aliyun.com/minisite/goods?userCode=eemp6vas">阿里云优惠券</a></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=64890268" charset="UTF-8"></script><think id="eab4b9f840753f8e7"></think>';
    }

    /**
     * 新第一次验证
     * 第一次验证绑定机器码,检测状态
     * 返回值
     *      error 1 --程序已经被删除
     *      error 2 --卡密类型已经被删除
     *      error 3 --卡密已经被删除
     *      error 4 --没有这个卡密
     *      error 5 --卡密过期了
     *      error 6 --卡密添加开始时间失败
     *      error 7 --卡密机器码出错
     * 
     */

    public function xdycyz()     
    {
        if (request()->isPost()) {
            //获取卡密
            $cardKEY=input('post.cardname');  
            //获取机器码      
            $machine=input('post.machine');
            // 分割卡密 
            $key=explode("-",$cardKEY);
            //查询所属类型,程序,卡密
            $softwares=db('software')->where('software_key', $key[0])->find();
            $cardtypes=db('cardtype')->where('cardtype_key', $key[1])->find();
            $cards=db('card')->where('cardname', $cardKEY)->find();
            
            if($softwares['delete_time']){
                return '{"error": "1"}';
            }
            //判断卡密类型是不是被删除了
            if($cardtypes['delete_time']){
                return '{"error": "2"}';
            }
             //判断有没有这个卡密
             if($cards){
                //判断这个卡密有没有被删除
                if($cards['delete_time']){
                    return '{"error": "3"}';
                }
            }else{
                return '{"error": "4"}';
            }
            //判断这个卡密有没有被激活
            if ($cards['cardstar_time']) {
              //激活了,看看有没有过期
              if ($cards['cardoverdue_time']<=time()) {
                $cardInfo=model('Card')->find($cards["id"]);
		        $result=$cardInfo->delete();
                return '{"error": "5"}';
                }
            }else{
                //没有激活写入激活时间,到期时间
                if ($cardtypes['cardtypetype']=="0") {
                    $cardoverdue_time=time()+3600*$cardtypes['cardtypetime'];
                }elseif ($cardtypes['cardtypetype']=="1"){
                    $cardoverdue_time=time()+24*3600*$cardtypes['cardtypetime'];
                }else{
                    $cardoverdue_time=time()+30*24*3600*$cardtypes['cardtypetime'];
                }
                $data=[
                    'id'=>$cards["id"],
                    'cardstar_time'=>time(),
                    'cardoverdue_time'=>$cardoverdue_time
                ];
                $result=model('Card')->edit($data);
                if($result==1){
               
                }else{
                    return '{"error": "6"}';
                }
            }

            /**
             * 1.不绑定机器码           1码可以同时在线好多
             * 2.绑定机器码,不可以解绑   只能一台设备
             * 3.绑定机器码,可以解绑     无限设备,同时在线一台设备
             */


            //第一次验证,绑定机器码
            if ($softwares['machine_type']=="1") {
                //绑定机器码
                if ($softwares['machine_down']=="0") {
                    //可以解绑
                    $data=[
                        'id'=>$cards["id"],
                        'machine'=>$machine
                    ];
                    $result=model('Card')->machin($data);                    
                    if($result!=1){                       
                        return '{"error": "7"}';
                    }
                }else{
                    //不能解绑
                    if ($cards['machine']=="") {
                        //没有机器码
                        $data=[
                            'id'=>$cards["id"],
                            'machine'=>$machine
                        ];
                        $result=model('Card')->machin($data);  
                        $cards=db('card')->where('cardname', $cardKEY)->find();                  
                        if($result!=1){                       
                            return '{"error": "7"}';
                         }
                    }
                    //机器码不同
                    if($cards['machine']!=$machine) {
                        return '{"error": "7"}';
                    }

                }
            }else{
                //不绑定机器码

            }
            $cards=db('card')->where('cardname', $cardKEY)->find();
            //获取心跳间隔
            //获取程序公告
            //获取程序状态
            //获取程序版本
            //获取程序更新地址
            $data=[
                'error'=>"0",
                'available'=> "1",
                'version'=>$softwares['version'],
                'notice'=>$softwares['notice'],
                'heart_time'=>$softwares['heart_time'],
                'software_state'=>$softwares['software_state'],
                'software_up'=>$softwares['software_up'],
                'cardstime'=>$cards['cardoverdue_time']
            ];
            return json_encode($data);





        }
    }

    /**
     * 新呼吸验证
     * 返回值
     *  error": 7 机器码错误
     *          5 过期了
     * 
     */
    public function xhxyz()
    {
        # code...
        if (request()->isPost()) {
            //获取卡密
            $cardKEY=input('post.cardname');  
            //获取机器码      
            $machine=input('post.machine');
            // 分割卡密 
            $key=explode("-",$cardKEY);
            //查询所属类型,程序,卡密
            $softwares=db('software')->where('software_key', $key[0])->find();
            $cards=db('card')->where('cardname', $cardKEY)->find(); 
            //判断机器码
            if ($softwares['machine_type']=="1") {
                //绑定机器码
                if ($cards['machine']!=$machine) {
                    return '{"error": "7"}';
                }
            }
            //判断时间
            //激活了,看看有没有过期
            if ($cards['cardoverdue_time']<=time()) {
                $cardInfo=model('Card')->find($cards["id"]);
                $result=$cardInfo->delete();
                return '{"error": "5"}';
            }
            //程序可以用
        
            return '{"could": "1"}';


        }

    }





    /**
     *      卡密初始化验证
     * 
     * 返回 error 1 --程序已经被删除
     *      error 2 --卡密已经被删除
     *      error 3 --卡密已经被删除
     *      error 4 --没有这个卡密
     *      error 5 --卡密过期了
     *      error 6 --卡密添加开始时间失败
     *      error 7 --卡密机器码出错
     */
    public function cardvalidation()
    {



        if (request()->isPost()) {
        //获取卡密
        $cardKEY=input('post.cardname');  
        //获取机器码      
        $machine=input('post.machine');
       // 分割卡密 
        $key=explode("-",$cardKEY);
        //查询所属类型,程序,卡密
        $softwares=db('software')->where('software_key', $key[0])->find();
        $cardtypes=db('cardtype')->where('cardtype_key', $key[1])->find();
        $cards=db('card')->where('cardname', $cardKEY)->find();
        //判断程序是不是被删除(不判断有没有程序了)
        if($softwares['delete_time']){
            return '{"error": "1"}';
        }
        //判断卡密类型是不是被删除了
        if($cardtypes['delete_time']){
            return '{"error": "2"}';
        }
        //判断有没有这个卡密
        if($cards){
            //判断这个卡密有没有被删除
            if($cards['delete_time']){
                return '{"error": "3"}';
            }
        }else{
            return '{"error": "4"}';
        }
        //判断这个卡密有没有被激活
        if ($cards['cardstar_time']) {
            //激活了,看看有没有过期
            if ($cards['cardoverdue_time']<=time()) {
                $cardInfo=model('Card')->find($cards["id"]);
		        $result=$cardInfo->delete();
                return '{"error": "5"}';
            }
        }else{
            //没有激活写入激活时间,到期时间
            if ($cardtypes['cardtypetype']=="0") {
                $cardoverdue_time=time()+3600*$cardtypes['cardtypetime'];
            }elseif ($cardtypes['cardtypetype']=="1"){
                $cardoverdue_time=time()+24*3600*$cardtypes['cardtypetime'];
            }else{
                $cardoverdue_time=time()+30*24*3600*$cardtypes['cardtypetime'];
            }
            $data=[
                'id'=>$cards["id"],
                'cardstar_time'=>time(),
                'cardoverdue_time'=>$cardoverdue_time
            ];
            $result=model('Card')->edit($data);
            
            if($result==1){
               
             }else{
                return '{"error": "6"}';
             }

        }

        //判断绑定机器码
        if ($softwares['machine_type']=="1") {
            //强制绑定机器码
            //判断机器码对不对
            if ($cards['machine']=="") {
                $data=[
                    'id'=>$cards["id"],
                    'machine'=>$machine
                ];
                $result=model('Card')->machin($data);  
                $cards=db('card')->where('cardname', $cardKEY)->find();                  
                if($result!=1){                       
                    return '{"error": "7"}';
                 }
            }
            
            if ($cards['machine']!=$machine) {
                //如果机器码不对
                //判断可不可以解绑机器码
                if ($softwares['machine_down']=="0") {
                    //能解绑,写入新机器码
                    $data=[
                        'id'=>$cards["id"],
                        'machine'=>$machine
                    ];
                    $result=model('Card')->machin($data);                    
                    if($result!=1){                       
                        return '{"error": "7"}';
                     }
                }else{
                    return '{"error": "7"}';
                }
            }
        }

        $cards=db('card')->where('cardname', $cardKEY)->find();
        //获取心跳间隔
        //获取程序公告
        //获取程序状态
        //获取程序版本
        //获取程序更新地址
        $data=[
            'error'=>"0",
            'available'=> "1",
            'version'=>$softwares['version'],
            'notice'=>$softwares['notice'],
            'heart_time'=>$softwares['heart_time'],
            'software_state'=>$softwares['software_state'],
            'software_up'=>$softwares['software_up'],
            'cardstime'=>$cards['cardoverdue_time']
        ];
        return json_encode($data);
        }
 

        return view();
    }




    public function hufengvalidation()
    {
        if (request()->isPost()) {
             //获取卡密
        $cardKEY=input('post.cardname');  
        //获取机器码      
        $machine=input('post.machine');
        // 分割卡密 
        $key=explode("-",$cardKEY);
        //查询所属类型,程序,卡密
        $softwares=db('software')->where('software_key', $key[0])->find();
        $cards=db('card')->where('cardname', $cardKEY)->find();    
        
        //判断机器码
        if ($softwares['machine_type']=="1") {
            if ($cards['machine']!=$machine) {
                return '{"error": "7"}';
            }
        }

        //判断时间
         //激活了,看看有没有过期
        if ($cards['cardoverdue_time']<=time()) {
            $cardInfo=model('Card')->find($cards["id"]);
            $result=$cardInfo->delete();
            return '{"error": "5"}';
        }

            //程序可以用
        
        return '{"could": "1"}';

        }
    }
}
